home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / cprog.EXE / DSCREEN.C < prev    next >
Text File  |  1990-05-30  |  4KB  |  220 lines

  1. #include <ctype.h>
  2. #include <conio.h>
  3. #include <dos.h>
  4. #include <stdio.h>
  5.  
  6. int menu_select();
  7. void pspace(int count), go_xy(int x, int y), main_menu(), put_char(char a);
  8. extern unsigned TallCursor, NoCursor;
  9. void charbox()
  10. {
  11.     int test;
  12.  
  13.     /* draw top of box */
  14.     char nw[]          = "╔";
  15.     char par[]       = "═══════════════════════════════════════";
  16.     char ne[]        = "╗";
  17.     char vert[]      = "║";
  18.     char sw[]        = "╚";
  19.  
  20.     int loop;
  21.     int x = 1;
  22.  
  23.     go_xy(0, 0);
  24.  
  25.     cputs(nw);
  26.     cputs(par);
  27.     cputs(par);
  28.     cputs(ne);
  29.  
  30.     /* draw parallel lines down the sides */
  31.     for (x = 1; x < 24; x++)
  32.     {
  33.         go_xy(x, 0);
  34.         cputs(vert);
  35.         go_xy(x, 79);
  36.         cputs(vert);
  37.     }
  38.  
  39.     /* draw bottom of box */
  40.     cputs(sw);
  41.     cputs(par);
  42.     cputs(par);
  43.     put_char('╝');
  44. }
  45.  
  46. void display_screen()
  47. {
  48.     go_xy(6, 18);
  49.     cputs("enter first name:  ");
  50.     go_xy(8, 18);
  51.     cputs(" enter last name:  ");
  52.     go_xy(10, 18);
  53.     cputs("    enter street:  ");
  54.     go_xy(12, 18);
  55.     cputs("      enter city:  ");
  56.     go_xy(14, 18);
  57.     cputs("     enter state:  ");
  58.     go_xy(16, 18);
  59.     cputs("       enter zip:  ");
  60.     go_xy(18, 18);
  61.     cputs("     enter phone:  ");
  62. }
  63.  
  64. void inputs(char *s, int count)
  65. {
  66.   char p[50];
  67.   p[0] = count;
  68.   p[1] = 0;
  69.  
  70.   textbackground(LIGHTGRAY);
  71.   pspace(count);
  72.   cgets(p);
  73.   strcpy(s, p+2);
  74.   textbackground(BLACK);
  75.   if (*s == '\0')
  76.   {
  77.     textbackground(BLACK);
  78.     window(1, 1, 80, 25);
  79.     clrscr();
  80.     charbox();
  81.     window(2, 2, 79, 24);
  82.     main_menu();
  83.   }
  84. }
  85.  
  86. void Beep(void)
  87. {
  88.   sound(750);
  89.   delay(25);
  90.   nosound();
  91. }
  92.  
  93. void pspace(int count)
  94. {
  95.     int looper;
  96.     for (looper = 0; looper < count; looper++)
  97.         cputs(" ");
  98.     for (looper = 0; looper < count; looper++)
  99.         printf("\b");
  100. }
  101.  
  102. void cls()
  103. {
  104.     union REGS r;
  105.     r.h.ah = 6;
  106.     r.h.al = 0;
  107.     r.h.ch = 1;
  108.     r.h.cl = 1;
  109.     r.h.dh = 23;
  110.     r.h.dl = 78;
  111.     r.h.bh = 7;
  112.     int86(0x10, &r, &r);
  113. }
  114.  
  115. void go_xy(int x, int y)
  116. {
  117.     union REGS r;
  118.     r.h.ah = 2;
  119.     r.h.dl = y;
  120.     r.h.dh = x;
  121.     r.h.bh = 0;
  122.     int86(0x10, &r, &r);
  123. }
  124.  
  125. void put_char(char a)
  126. {
  127.     union REGS r;
  128.     r.h.ah = 9;
  129.     r.h.al = a;
  130.     r.h.bl = 14;
  131.     r.h.bh = 0;
  132.     r.x.cx = 1;
  133.     int86(0x10, &r, &r);
  134. }
  135.  
  136. int getkey(void)
  137. /* Uses the BIOS to read the next keyboard character */
  138. {
  139.  int key, lo, hi;
  140.  
  141.  key = bioskey(0);
  142.  lo = key & 0X00FF;
  143.  hi = (key & 0XFF00) >> 8;
  144.  return((lo == 0) ? hi + 256 : lo);
  145. } /* getkey */
  146.  
  147. void field(char *field, int max)
  148. {
  149.     int loop;
  150.  
  151.     for (loop = 0; loop < max; loop++)
  152.     {
  153.     cputs(" ");
  154.     }
  155.  
  156.     for (loop = 0; loop < max; loop++)
  157.     {
  158.         cprintf("\b");
  159.     }
  160.  
  161.     cprintf("%s", field);
  162.  
  163.     for (loop = 0; loop < strlen(field); loop++)
  164.     {
  165.         cprintf("\b");
  166.     }
  167. } /* field */
  168.  
  169. int menu_select()
  170. {
  171.     int x, y, c, selection;
  172.     char sel[4];
  173.     
  174.     strcpy(sel, "");
  175.  
  176.     main_menu();
  177.  
  178.     SetCursor(TallCursor);
  179.  
  180.     do
  181.     {
  182.     edit_field(51, 22, sel, 2, LIGHTGRAY, YELLOW);
  183.     selection = atoi(sel);
  184.         go_xy(22, 51);
  185.     } while ((selection < 1) || (selection > 10));
  186.  
  187.     SetCursor(NoCursor);
  188.     return (selection);
  189. }
  190.  
  191. void main_menu()
  192. {
  193.     cls();
  194.  
  195.     go_xy(2, 25);
  196.     textcolor(WHITE); cputs("1"); textcolor(YELLOW); cputs(".  Add A Record");
  197.     go_xy(4, 25);
  198.     textcolor(WHITE); cputs("2"); textcolor(YELLOW); cputs(".  Remove A Record");
  199.     go_xy(6, 25);
  200.     textcolor(WHITE); cputs("3"); textcolor(YELLOW); cputs(".  Write Labels To Disk");
  201.     go_xy(8, 25);
  202.     textcolor(WHITE); cputs("4"); textcolor(YELLOW); cputs(".  Display A Record");
  203.     go_xy(10, 25);
  204.     textcolor(WHITE); cputs("5"); textcolor(YELLOW); cputs(".  Edit A Record");
  205.     go_xy(12, 25);
  206.     textcolor(WHITE); cputs("6"); textcolor(YELLOW); cputs(".  Save The File");
  207.     go_xy(14, 25);
  208.     textcolor(WHITE); cputs("7"); textcolor(YELLOW); cputs(".  Retrieve The File");
  209.     go_xy(16, 25);
  210.     textcolor(WHITE); cputs("8"); textcolor(YELLOW); cputs(".  Browse Through List");
  211.     go_xy(18, 25);
  212.     textcolor(WHITE); cputs("9"); textcolor(YELLOW); cputs(".  DOS Shell");
  213.     go_xy(20, 25);
  214.     textcolor(WHITE); cputs("10"); textcolor(YELLOW); cputs(".  Exit Program");
  215.     go_xy(22, 25);
  216.     
  217.     cputs("Select Number of Choice:  ");
  218. }
  219.  
  220.